'''
输入： [1,2,3,1]
输出： 4
解释： 选择 1 号预约和 3 号预约，总时长 = 1 + 3 = 4。
示例 2：

输入： [2,7,9,3,1]
输出： 12
解释： 选择 1 号预约、 3 号预约和 5 号预约，总时长 = 2 + 9 + 1 = 12。
示例 3：

输入： [2,1,4,5,3,1,1,3]
输出： 12
解释： 选择 1 号预约、 3 号预约、 5 号预约和 8 号预约，总时长 = 2 + 4 + 3 + 3 = 12。

'''
def message(nums):
    n = len(nums)
    if n == 0:
        return 0
    dp0, dp1 = 0, nums[0]
    for i in range(1, n):
        tdp0 = max(dp0, dp1)  # 计算 dp[i][0]
        tdp1 = dp0 + nums[i]  # 计算 dp[i][1]
        dp0, dp1 = tdp0, tdp1

    return max(dp0, dp1)

def func(nums):
    length = len(nums)
    if length == 0:
        return 0
    if length == 1:
        return nums[0]
    if length == 2:
        return max(nums[0], nums[1])
    len1 = nums[length - 1] + self.massage(nums[:length - 2])
    len2 = nums[length - 2] + self.massage(nums[:length - 3])
    return max(len1, len2)
if __name__ == '__main__':
    print(message([2, 3, 4, 5, 3, 2, 5, 3]))